const cache = {}; // 创建一个简单的内存缓存对象
// 缓存中间件
function cachingMiddleware(req, res, next) {
  const cacheKey = `${req.method}:${req.url}`;
  if (cache[cacheKey]) {
    // 如果缓存存在，直接返回缓存数据
    // console.log('cache[cacheKey]',cache[cacheKey])
    const cacheData = JSON.parse(cache[cacheKey]);
    const reuslt = res.json(cacheData);
    // console.log("reuslt:====\n", reuslt);
    return reuslt;
  }
  // 设置一个代理函数，当响应结束时将数据存入缓存
  const originalSend = res.send;
  res.send = function (chunk) {
    const data = JSON.stringify(chunk);
    cache[cacheKey] = data;
    console.log("data:====\n", data);
    originalSend.call(res, data);
  };
  next(); // 继续执行下一个中间件或路由处理器
}

module.exports = (app) => {
  app.use(cachingMiddleware);
};
